داده‌کاوی با WEKA (قسمت اول)
بلاگ تخصصی کامپیوتر
الفبای کاوش دنیای داده‌ها برای استخراج الگو‌هاي نهفته

گردآوری و ترجمه‌: کیومرث سلطانی

اشاره:
داده‌کاوی حوزه‌اي ترکیبی از علوم کامپیوتر و آمار است که در طول سال‌هاي اخیر و با افزایش داده‌هاي دیجیتال و رشد قدرت محاسباتی کامپیوترها از محبوبیت ویژه‌اي برخوردار شده است. امروزه، تقریباً هر شرکت موفقی به نحوی با این قلمرو سر و کار داشته و از آن برای درک الگو‌هاي ناشناخته و افزایش کارایی شرکت استفاده مي‌كند. در این سری از مقاله‌ها قصد دارم تا مقدمات ورود به این حوزه را با استفاده از نرم‌افزار آزاد WEKA بیان كنم. این الفبای کاوش دنیای داده‌ها برای استخراج الگو‌هاي نهفته است

 

 

داده‌کاوی حوزه‌اي ترکیبی از علوم کامپیوتر و آمار است که در طول سال‌هاي اخیر و با افزایش داده‌هاي دیجیتال و رشد قدرت محاسباتی کامپیوترها از محبوبیت ویژه‌اي برخوردار شده است. امروزه، تقریباً هر شرکت موفقی به نحوی با این قلمرو سر و کار داشته و از آن برای درک الگو‌هاي ناشناخته و افزایش کارایی شرکت استفاده مي‌كند. در این سری از مقاله‌ها قصد دارم تا مقدمات ورود به این حوزه را با استفاده از نرم‌افزار آزاد WEKA بیان كنم. این الفبای کاوش دنیای داده‌ها برای استخراج الگو‌هاي نهفته است.

داده‌کاوی چیست؟
شاید بد نباشد کار را با یک معرفی مختصر از داده کاوی آغاز كنيم. داده کاوی در تعریف کلی به مجموعه‌اي از روش‌ها برای دریافت اطلاعات از یک مجموعه داده و تبدیل آن به نتیجه‌اي معنادار گفته مي‌شود. در حالت عمومی این روش‌ها زمانی ارزش خود را نشان مي‌دهند که روی مجموعه بزرگی از داده‌ها پیاده‌سازی شده و الگوها و قوانین موجود در آن‌ها را نمایان سازند. مي‌توان داده کاوی را در دسته بندی‌اي کلی به دو گروه تقسیم كرد: مستقیم و غیرمستقیم. در داده کاوی مستقیم شما از راهبرد بالا به پایین استفاده مي‌کنید، يعني ما با یک هدف مشخص روبه‌رو هستیم و مي‌دانیم که به دنبال پیش‌بینی چه چیزی هستیم. در این روش ما با تکیه به داده‌‌هاي گذشته سعی مي‌کنیم پیش بینی معقولی را برای آینده انجام دهیم. به عنوان مثال، با در اختیار داشتن اطلاعات خرید مشتریان در گذشته، پیش بینی مي‌کنیم چه مشتریانی بیشتر به خرید خودرو‌هاي شاسی بلند علاقه دارند.


در داده کاوی غیرمستقیم ما از راهبرد پایین به بالا استفاده مي‌کنیم. با استفاده از این شیوه، ما تنها الگو‌هاي موجود در یک مجموعه داده را پیدا کرده و تفسیر این‌که آیا این الگوها مهم هستند یا خیر را به مشتری واگذار مي‌کنیم. نتیجه این روش مي‌تواند ایجاد گروه‌‌هاي جدید از داده‌ها یا به دست‌آوردن الگو‌هاي جالب نوینی باشد که اطلاعات ما را درباره آن مجموعه داده افزایش مي‌دهد. به عنوان مثال، اگر اهل تماشای فوتبال باشید، کم و بیش با این دسته از آمار‌هاي عجیب و غریب آشنا هستید. وقتی مي‌شنوید که تیمی در x بازی خارج از خانه‌اي که در روز‌هاي بارانی انجام داده، وقتی گل نخست را در نیمه دوم زده بازی را برده است، به احتمال تصور نمی‌کنید که آن‌ها چنین الگویی را از قبل مشخص ساخته بودند. بلکه بیشتر چنين آمار‌هاي بسیار خاص و البته جالب با اجرای داده کاوی غیرمستقیم روی مجموعه داده مشخص استخراج شده‌اند.


دنیای دیجیتال و به طور خاص اینترنت باعث شد تا میزان اطلاعاتي که در اختیار شرکت‌ها قرار مي‌گیرد، روز به روز افزایش یابد. امروزه، حتی سایت‌‌هاي کوچک نیز مي‌توانند به صورت بالقوه اطلاعات ارزشمندی را در اختیار داشته باشند. حال تصور کنید سایت‌هایی مانند گوگل، آمازون و یاهو با چه مجموعه اطلاعاتی عظیم و البته به همان اندازه قيمتي طرف هستند. اين انفجار اطلاعاتي تنها مختص شركت‌هاي كامپيوتري نيست. شاید جالب باشد که بدانید وال‌مارت، یکه تاز خرده فروشی جهان یکی از پیشرفته‌ترین سیستم‌‌هاي داده کاوی موجود در سراسر دنیا را دارد. شركت‌هايي مانند وال مارت که ارتباطات نزدیک و مداومی با مشتری دارند، مي‌توانند با جمع‌آوری داده‌ها و اجرای روش‌هاي داده کاوی روی آن‌ها، کسب و کار خود را بیش از پیش رونق بخشند.


درباره داده کاوی باید به این نکته نیز اشاره کرد که اگر علاقه‌مند به دنبال کردن این حوزه به صورت حرفه‌اي هستید، به توانایی‌هایی غیر از کار با نرم‌افزار‌هاي داده‌کاوی نیز احتیاج دارید. افراد حرفه‌اي در این حوزه عموماً مدرک کارشناسی ارشد یا دکترا در رشته‌هایی مانند آمار یا ریاضی کاربردی دارند. این افراد علاوه‌بر به کارگیری دانش نظری تحلیل داده‌ها و استفاده از نرم‌افزار، باید از تجربه بالایی نیز در این امر برخوردار باشند. درآمد داده کاو‌هاي حرفه‌اي در مقایسه با سایر شغل‌ها به نسبت درآمد بالایی محسوب مي‌شود، اما به همان اندازه که در آمد این گروه بالا است، تعدادشان کم است.


یک داده کاو حرفه‌اي علاوه‌بر دید وسیع‌آماری و تسلط به استفاده از کامپیوتر در این حوزه، باید با ماهیت داده‌هایی که در حال کار روی آن‌ها است نیز آشنایی نسبی‌اي داشته باشد تا به اين ترتیب بتواند نسبت کارایی به هزینه را در استخراج الگوها و پیش‌بینی آینده افزایش دهد. شاید هر شخصی با کمی مطالعه بتواند از بيشتر ظرفیت این حوزه استفاده كند، اما تنها تعداد اندکی هستند که مي‌توانند پا را از این فراتر گذاشته و به آن چند الگوی طلایی نهفته در یک مجموعه داده دست یابند.

WEKA چیست؟
WEKA (سرنام Waikato Environment for Knowledge Analysis) نرم‌افزاری آزاد و اپن سورس است که توسط دانشگاه وایکاتو در نیوزیلند طراحی شده است. در این مقاله علاوه بر معرفی اولیه WEKA به معرفی یکی از ابتدایی‌ترین روش‌‌هاي انجام داده کاوی، یعنی استفاده از رگرسیون مي‌پردازیم. با استفاده از این مفهوم مي‌توان از روی داده‌هاي موجود، پیش‌بینی‌هاي عددی برای داده‌‌هاي آینده انجام داد. البته، بعيد است شما با اجرای این مفهوم در WEKA شگفت زده شوید! زیرا به احتمال فراوان آن را قبلاً در نرم‌افزار‌هاي دیگری مانند اكسل یا زبان‌هاي برنامه‌نویسی علمی‌اي مانند Matlab و R به کار برده‌اید. اما به هر سو، سادگی این مفهوم باعث مي‌شود تا برای شروع معرفی WEKA گزینه‌اي مناسب محسوب شود. تقریباً همه شركت‌هاي بزرگی که ابزاری برای کار با داده‌ها عرضه مي‌کنند، امکانات داده کاوی را نیز ارائه مي‌كنند. به عنوان مثال، SQL Server مایکروسافت از یک ابزار داده کاوی قوی سود مي‌برد. اوراکل و SAP نیز از قدرتمندان این حوزه محسوب مي‌شوند. اما در میان نرم افزار‌هاي آزاد WEKA چیز دیگری است. این نرم‌افزار برای نخستين‌بار در سال ۱۹۹۷ به شکل مدرنش نوشته شده و تحت مجوز GPL عرضه شد. پلتفرم جاوایی WEKA باعث مي‌شود تا اجرای آن روی بيشتر سیستم عامل‌ها امكان‌پذير باشد. این سیستم همچنین به یک API عمومی مجهز است که شما مي‌توانید با گنجاندن آن در برنامه خودتان از امکانات داده کاوی WEKA سود برید.

شروع کار با WEKA
برای اجرای WEKA به نصب JRE روی سیستم نیاز است. در صورتی که این موضوع صورت گرفته باشد، مشکل خاص دیگری در اجرای این نرم‌افزار نخواهید داشت. صفحه شروع WEKA مانند شکل ۱ خواهد بود.

شكل 1- صفحه آغازین WEKA

صفحه آغازین شامل ۴ گزینه است:
Explorer: محیطی برای مکاشفه در داده‌ها با استفاده از WEKA
 Experimenter: محیطی برای انجام آزمون و انجام آزمايش‌هاي آماری میان روش‌هاي مختلف یادگیری
KnowledgeFlow: محیطی که تقریباً تمام کارایی اكسپلورر را پیشتیبانی مي‌کند، اما در عوض از یک رابط drag-and-drop‌ استفاده مي‌كنند.
SimpleCLI: رابط ساده خط فرمان  که به شما اجازه دسترسی مستقیم به دستورات WEKA را مي‌دهد.
برای عملیات مورد نظر ما در این مقاله محیط اكسپلورر کافی است. پس اكنون وارد این محیط شوید. در شکل ۲ محیط اكسپلورر را مشاهده مي‌كنيد.

شكل 2-  محيط Explorer در  نرم‌افزار   WEKA


رگرسیون
مدل رگرسیون تقریباً برای همه آشنا است. این مدل در عین سادگی مي‌تواند اطلاعات مفیدی را در اختیار پیش‌بینی کننده قرار دهد. در این مدل عموماً شیوه کار به این صورت است که باید رابطه میان یک سری متغیر مستقل و یک متغیر وابسته کشف شود. به‌این ترتیب، ما قادر خواهیم بود تا با داشتن مقادیر متغیر‌هاي مستقل، متغیر وابسته را پیش بینی كنيم.


در اين بخش به عنوان نمونه، از مثال آورده شده در کتاب درسی آنلاین آمار HyperStat استفاده مي‌کنیم. در این مثال مجموعه داده‌اي درباره پیش‌بینی معدل دانشگاه فراهم شده است. متغیر‌هاي مستقل این پیش‌بینی معدل دبیرستان، نمره SAT (آزموني مانند کنکور) و کیفیت توصیه‌نامه‌هایی است که دانشجویان کسب کرده‌اند. حال با استفاده از این سه متغیر قصد داریم تا متغیر وابسته معدل دانشگاه را پیش‌بینی كنيم.برای مشاهده فرمت داده‌هایی که در مثال ما به کار مي‌روند مي‌توانید به جدول ۱ نگاهی بیاندازید.

جدول 1- معدل دانشگاه بر اساس پارامتر‌هاي سه گانه


وارد کردن داده‌ها به WEKA
در ادامه تصميم داريم داده‌ها را به WEKA وارد كنيم و برای این کار باید آن‌ها را به فرمتی درآوریم که برای WEKA قابل فهم باشد. روش ترجیحی WEKA برای انجام این‌کار استفاده از ARFF (سرنام Attribute-Relation File Format) است. در این روش ما ابتدا نوع داده‌هایی را که قرار است بارگذاری شوند، انتخاب کرده، سپس خود داده‌ها را تأمین مي‌سازیم. با توجه به محدودیت‌هاي عددی که برای مدل رگرسیون وجود دارد، در این حالت تنها مي‌توان داده‌ها را در دو نوع NUMERIC و DATE تعریف كرد، سپس نوبت به وارد کردن خود داده‌ها مي‌رسد. برای این‌کار باید داده‌ها را با جداکننده کاما وارد سازید. یعنی برای هر سطر، بین هر دو Attribute آن یک کاما قرار دهید. فایل نهایی باید مشابه فایلی باشد که در فهرست‌۱ مشاهده مي‌كنيد. البته، برای کاهش حجم این فهرست تنها تعدادی از داده‌هایی را  که در مدل‌سازی از آن استفاده مي‌کنیم، در آن ذکر کرده‌ایم.



@RELATION gpa

@ATTRIBUTE collegeGPA NUMERIC
@ATTRIBUTE HighschoolGPA NUMERIC
@ATTRIBUTE SATtotal NUMERIC
@ATTRIBUTE QofRecom NUMERIC

@DATA
2.04,2.01,1070,5
2.56,3.40,1254,6
3.75,3.68,1466,6
1.10,1.54,706,4
3.00,3.32,1160,5
0.05,0.33,756,3
1.38,0.36,1058,2
1.50,1.97,1008,7
1.38,2.03,1104,4
4.01,2.05,1200,7
1.50,2.13,896,7
1.29,1.34,848,3
1.90,1.51,958,5
3.11,3.12,1246,6
1.92,2.14,1106,4



بارگذاری‌داده به WEKA
برای شروع این بخش WEKA را باز کرده و روی اكسپلورر کلیک کنید. حال شما وارد صفحه اكسپلورر خواهید شد که در آن بخش Preprocess انتخاب شده است. روی Open File کلیک کرده و فایل ARFF‌ ساخته شده در بخش قبل را انتخاب كنيد. حال باید WEKA Explorer تان چیزی شبیه شکل ۳ باشد. این صفحه قابلیت مرور و کار با داده‌ها را به شما مي‌دهد. در قسمت چپ ابتدا تعداد ستون‌ها (Attribute‌ها) و تعداد نمونه‌ها را که نشان دهنده تعداد سطر‌هاي ورودی است، مشاهده مي‌كنيد. در زیر این قسمت فهرست ستون‌ها نوشته شده است که با انتخاب هر کدام از آن‌ها مي‌توان مشخصه‌هایی مانند مینیموم، ماکسیموم، میانگین و انحراف معیار این ستون از داده‌ها را در سمت راست صفحه مشاهده كرد. همچنین در قسمت پایینی بخش راست صفحه مي‌توانید نمایی بصری از داده‌ها را مشاهده كنيد. با کلیک روی دکمه Visualize All صفحه جدیدی بازخواهد شد که نمودار ستونی فراوانی داده‌ها را برای تمام ستون‌ها به صورت جداگانه نمایش خواهد داد.

شكل 3- WEKA  پس از بارگذاری داده‌ها



ایجاد مدل رگرسیون با WEKA
برای شروع کار روی تب Classify کلیک كنيد. در این بخش باید در ابتدا مدل را انتخاب کنیم که در اینجا رگرسیون خطی است. برای این‌کار روی Choose کلیک کرده، سپس به بخش Function رفته و LinearRegression را انتخاب كنيد. همان‌طور که مشاهده کردید، برای مدل‌سازی گزینه‌هاي متعدد دیگری نیز وجود دارد که نشان از قدرت بالای نرم‌افزار WEKA دارد.حال باید به نرم‌افزار بگوییم که از چه داده‌هايي برای ساخت مدل استفاده كند.


در اینجا چهار گزینه در اختیار داریم. اولی استفاده از Training Set است که در اینجا ما از آن استفاده مي‌کنیم. این گزینه به آن معنا است که WEKA باید داده‌ها را از فایل ARFF‌اي که در بخش قبل وارد کردیم، بگیرد. اما گزینه‌هاي دیگر در اینجا چه استفاده‌اي دارند؟ Supplied test set برای وقتی است که شما مي‌خواهید از داده‌هاي متفاوتی برای مدل‌سازی استفاده كنيد. Cross-Validation در واقع از روشی با همین نام استفاده مي‌کند که در آن ابتدا داده‌ها به یک سری زیرمجموعه تقسیم شده و آنالیز روی یک زیر مجموعه آن که مجموعه تمرینی نام دارد انجام مي‌شود. سپس این آنالیز روی زیر مجموعه‌هاي دیگر که مجموعه آزمون نام دارد، تأیید مي‌شود. در نهایت، Percentage split نیز یک چندک از داده‌ها را انتخاب کرده و از آن برای ساخت مدل استفاده مي‌كند.مرحله نهایی نیز انتخاب متغیر وابسته‌اي است که قرار است به پیش‌بینی آن بپردازیم. این متغیر در مثال ما CollegeGPA است. پس در کامبوباکس تهیه شده، collegeGPA را انتخاب مي‌كنيم.حال آماده ایجاد مدل هستیم. روی Start کلیک کنید. این کار شکلی مانند شکل ۵ را برایتان به نمایش درخواهد آورد.

شكل 4- نمودار ستونی برای فراوانی مقادیر مختلف ستون‌ها در بازه‌هايي با طول یکسان

شكل 5- اجرای مدل رگرسیون روی داده‌ها

 

تفسیر مدل رگرسیون
مدل‌سازی تنها با دریافت اعداد خروجی تمام نمی شود. بلکه این تازه شروع کار است، زیرا مي‌توان از این نقطه به تفسیر مدل پرداخت و اعداد به دست آمده را تحلیل كرد. با توجه به مدل به دست آمده در بالا مي‌توان تفسیر‌هاي زیر را انجام داد:
کیفیت توصیه نامه‌ها مهم نیست،  WEKA تنها ستون‌هايي را در تحلیل دخالت مي‌دهد که به دقت مدل کمک کنند. به این ترتیب، ستون‌هايي که در ساخت یک مدل خوب بی‌تأثیر هستند، کنار گذاشته مي‌شوند. عدم ذکر متغیر مربوط به کیفیت توصیه نامه‌ها نشان دهنده این است که این متغیر در مدل‌سازی رگرسیون ما تأثیری ندارد. اما نقش معدل دبيرستان به نسبت زياد است. طبق مدل رگرسیون یک دهم افزایش در معدل دبیرستان مي‌تواند تا 0,4 معدل دانشگاه را تغییر دهد. در مقابل صد واحد تغییر در نمره SAT که تغییر به نسبت بزرگی با توجه به ماهیت این امتحان است تنها 0,12 تغییر در معدل دانشگاه ایجاد مي‌کند. یعنی 0,1 تغییر معدل دبیرستان نقشی معادل تغییر ۳۳۳ نمره‌اي در امتحان SAT ایفا مي‌کند که به تجربه ثابت شده دشوارتر از تغییر معدل به اندازه 0,1‌است. به این ترتیب، به نظر مي‌آید معدل دوران دبیرستان با توجه به مدل‌سازی ما نقش معدل دبيرستان به نسبت زياد است.  پر رنگ‌تری نسبت به نمره SAT در بالا بردن معدل دانشگاه ایفا مي‌کند. هر چند که این تأثیر مي‌تواند در بازه‌هاي مختلف، شدت متفاوتی داشته باشد.

جمع‌بندي
این مقاله بیشتر به معرفی WEKA اختصاص داشت و البته اجرای مدل رگرسیونی که با بسیاری از نرم‌افزار‌هاي دیگر نیز قادر به انجام آن بودید. اما قسمت‌هاي هیجان‌انگیز هنوز در راه هستند. داده کاوی علمي پیچیده و البته در مواردی خسته کننده است، اما یادگیری سطحی ابتدایی از آن نه تنها برای هر کسی که کار علمی مي‌کند، ضروری است، بلکه مي‌تواند اوقات مفرحی را نیز برایتان رقم زند! فقط کافی است یک مجموعه داده جالب پیدا کرده و در آن به مکاشفه بپردازید. لازم به ذکر است که بخش اعظم این مقاله از مطلب ذکر شده در منبع برداشت شده است، اما اشکالات جزئی آماری در مقاله منبع باعث شد تا ترجیح داده شود به ترجمه آزاد مطلب پرداخته و در ضمن مثال مطرح شده در آن تغییر داده شود.در قسمت بعدی این مجموعه به classification و خوشه‌بندی در WEKA مي‌پردازیم.

منبع:
1.  Data Mining with WEKA, Michael Abernethy, IBM developerWorks


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:








تاریخ: شنبه 21 خرداد 1390برچسب:,
ارسال توسط رضا
آخرین مطالب

آرشیو مطالب
پيوند هاي روزانه
امکانات جانبی

ورود اعضا:

<-PollName->

<-PollItems->

خبرنامه وب سایت:

برای ثبت نام در خبرنامه ایمیل خود را وارد نمایید




آمار وب سایت:
 

بازدید امروز : 5
بازدید دیروز : 0
بازدید هفته : 19
بازدید ماه : 317
بازدید کل : 260766
تعداد مطالب : 77
تعداد نظرات : 11
تعداد آنلاین : 1